/**
 * 
 */
package state;

/**
 * PatternBox: "State" implementation.
 * <ul>
 *   <li>defines an interface for encapsulating the behavior associated with a particular state of the Context.</li>
 * </ul>
 * 
 * @author <a href="mailto:dirk.ehms@patternbox.com">Dirk Ehms</a>
 * @author lx
 */
public abstract class State {

	/** 
	 * This method changes the state of the given Context parameter.
	 */
	protected void changeState(Account context, State state) {
		context.changeState(state);
	}

	/** 
	 * This abstract method must be implemented by the ConcreteState.
	 */
	public abstract void handle(Account context);

}
